home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / nrpas13.zip / GSER.PAS < prev    next >
Pascal/Delphi Source File  |  1991-04-29  |  702b  |  30 lines

  1. PROCEDURE gser(a,x: real; VAR gamser,gln: real);
  2. LABEL 1;
  3. CONST
  4.    itmax=100;
  5.    eps=3.0e-7;
  6. VAR
  7.    n: integer;
  8.    sum,del,ap: real;
  9. BEGIN
  10.    gln := gammln(a);
  11.    IF (x <= 0.0) THEN BEGIN
  12.       IF (x < 0.0) THEN BEGIN
  13.          writeln('pause in GSER - x less than 0'); readln
  14.       END;
  15.       gamser := 0.0
  16.    END ELSE BEGIN
  17.       ap := a;
  18.       sum := 1.0/a;
  19.       del := sum;
  20.       FOR n := 1 TO itmax DO BEGIN
  21.          ap := ap+1.0;
  22.          del := del*x/ap;
  23.          sum := sum+del;
  24.          IF (abs(del) < abs(sum)*eps) THEN GOTO 1
  25.       END;
  26.       writeln('pause in GSER - a too large, itmax too small'); readln;
  27. 1:      gamser := sum*exp(-x+a*ln(x)-gln)
  28.    END
  29. END;
  30.